﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SanFranciscoModel.Alumno;
using SanFranciscoModel.Familiar;
using SanFranciscoModel.Curso;
using SanFranciscoModel.Intermedias;
using SanFranciscoModel.Docente;

namespace SanFrancisco
{
    public partial class IngresoDNI : Form
    {
        private int _Tipo;
        private string _Texto;
        private SearchTipo _searchTipo;
        private string _DNI = "-1";

        public IngresoDNI(int Tipo, string Texto, SearchTipo searchTipo)
        {
            _searchTipo = searchTipo;
            _Tipo = Tipo;
            _Texto = Texto;
            InitializeComponent();
        }


        public IngresoDNI(int Tipo, string Texto, SearchTipo searchTipo,string DNI)
        {
            _searchTipo = searchTipo;
            _Tipo = Tipo;
            _Texto = Texto;
            _DNI = DNI;
            InitializeComponent();
        }


        private bool MostrarSearch()
        {
            if (_Tipo == 3 || _Tipo == 4 || _Tipo == 5 || _Tipo == 6 || _Tipo == 15 || _Tipo == 31 || _Tipo == 23 || _Tipo == 11 || _Tipo == 15 || _Tipo == 14 || _Tipo == 13 || _Tipo == 19 || _Tipo == 20 || _Tipo == 21 || _Tipo == 32 || _Tipo == 34 || _Tipo == 35 || _Tipo == 36 || _Tipo == 37 || _Tipo == 38 || _Tipo == 39 || _Tipo == 40)
                return true;
            else
                return false;
        }


        private void IngresoDNI_Load(object sender, EventArgs e)
        {
            lblexto.Text = _Texto;
            if (_DNI != "-1")
            {
                txtDNI.Text = _DNI;
            }
            btnSearch.Visible = MostrarSearch();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            AlumnoManager AlumnoManager = new AlumnoManager();
            FamiliarManager FamiliarManager = new FamiliarManager();
            CursoManager CursoManager = new CursoManager();
            AlumnoXCursoManager AlumnoXCursoManager = new AlumnoXCursoManager();
            DocenteManager DocenteManager = new DocenteManager();

            switch (_Tipo)
            {
                case 1:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (!AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                AltaAlumno a = new AltaAlumno(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno ya existe en el sistema, por favor ingrese uno nuevo!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 2:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (!DocenteManager.ExisteDocente(int.Parse(txtDNI.Text)))
                            {
                                AltaDocente a = new AltaDocente(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Docente ya existe en el sistema, por favor ingrese uno nuevo!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI Docente!");
                        }
                    }
                    break;
                case 3:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (DocenteManager.ExisteDocente(int.Parse(txtDNI.Text)))
                            {
                                ModificarDocente a = new ModificarDocente(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Docente no existe en el sistema, por favor ingrese uno valido!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI docente!");
                        }
                    }
                    break;
                case 4:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (DocenteManager.ExisteDocente(int.Parse(txtDNI.Text)))
                            {
                                ListarDocente a = new ListarDocente(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                                {
                                MessageBox.Show("El DNI Docente no existe en el sistema, por favor ingrese uno valido!");
                                }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI Docente!");
                        }
                    }
                    break;
                case 5:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                ModificarAlumno a = new ModificarAlumno(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema, por favor ingrese uno valido!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 6:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                ListarAlumno a = new ListarAlumno(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 7:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                CargarConductaAlumno a = new CargarConductaAlumno(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno NO existe en el sistema, por favor ingrese uno nuevo!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI Alumno!");
                        }
                    }
                    break;
                case 8:
                    {
                        
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                if (AlumnoManager.ExisteConductaAlumnobyDNI(int.Parse(txtDNI.Text)))
                                {
                                    ListarConductaAlumno a = new ListarConductaAlumno(int.Parse(txtDNI.Text));
                                    a.StartPosition = FormStartPosition.CenterScreen;
                                    this.Hide();
                                    a.ShowDialog();
                                }
                                else
                                {
                                    MessageBox.Show("El alumno no posee ninguna nota cargada!");
                                }
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 9:
                    {
                        CargarAsistenciaAlumno a = new CargarAsistenciaAlumno();
                        a.StartPosition = FormStartPosition.CenterScreen;
                        this.Hide();
                        a.ShowDialog();
                    }
                    break;
                case 10:
                    {
                        CargarAsistenciaDocente a = new CargarAsistenciaDocente();
                        a.StartPosition = FormStartPosition.CenterScreen;
                        this.Hide();
                        a.ShowDialog();
                    }
                    break;
                case 11:
                    {
                        Curso Curso = new Curso();

                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                if (CursoManager.ExisteAlumnoEnCursoActual(int.Parse(txtDNI.Text)))
                                {
                                    CargarNotaAlumno a = new CargarNotaAlumno(int.Parse(txtDNI.Text));
                                    a.StartPosition = FormStartPosition.CenterScreen;
                                    this.Hide();
                                    a.ShowDialog();
                                }
                                else
                                {
                                    MessageBox.Show("El Alumno no posee un curso asignado para el periodo actual");
                                }
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 12:
                    {
                        Curso Curso = new Curso();

                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                if (CursoManager.ExisteAlumnoEnCursoActual(int.Parse(txtDNI.Text)))
                                {
                                    ModificarNotaAlumno a = new ModificarNotaAlumno(int.Parse(txtDNI.Text));
                                    a.StartPosition = FormStartPosition.CenterScreen;
                                    this.Hide();
                                    a.ShowDialog();
                                }
                                else
                                {
                                    MessageBox.Show("El Alumno no posee un curso asignado para el periodo actual");
                                }
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                       
                    }
                    break;
                case 13:
                    {
                        

                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                ListarNotaAlumno a = new ListarNotaAlumno(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema, por favor ingrese uno nuevo!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 14:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                AltaFamiliar a = new AltaFamiliar(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema, por favor ingrese uno nuevo!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 15:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (FamiliarManager.ExisteFamiliarSimple(int.Parse(txtDNI.Text)))
                            {
                                ModificarFamiliar a = new ModificarFamiliar(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Familiar no existe en el sistema, por favor ingrese uno nuevo!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI familair!");
                        }
                    }
                    break;
                case 16:
                    {
                        listarAsistenciaAlumno a = new listarAsistenciaAlumno();
                        a.StartPosition = FormStartPosition.CenterScreen;
                        this.Hide();
                        a.ShowDialog();
                    }
                    break;
                case 17:
                    {
                        ListarAsistenciaDocente a = new ListarAsistenciaDocente();
                        a.StartPosition = FormStartPosition.CenterScreen;
                        this.Hide();
                        a.ShowDialog();
                    }
                    break;
                case 19:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                if (AlumnoXCursoManager.yaAsignadoCurso(int.Parse(txtDNI.Text)))
                                {
                                    MessageBox.Show("Error: El alumno ya pertenece a un curso!");
                                    this.Close();
                                }
                                else
                                {
                                    AsignarAlumnoCurso a = new AsignarAlumnoCurso(int.Parse(txtDNI.Text));
                                    a.StartPosition = FormStartPosition.CenterScreen;
                                    this.Hide();
                                    a.ShowDialog();
                                }
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema, por favor ingrese uno nuevo!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 20:
                    {
                        if (CursoManager.ExisteCurso(int.Parse(txtDNI.Text), DateTime.Now.Year))
                        {
                            ModificarCurso a = new ModificarCurso();
                            a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                        }
                        else
                        {
                            MessageBox.Show("El id Curso no existe en el sistema");
                        }
                    }
                    break;
                case 21:
                    {
                        if (CursoManager.ExisteCurso(int.Parse(txtDNI.Text), DateTime.Now.Year))
                        {
                            ListarCurso a = new ListarCurso(int.Parse(txtDNI.Text));
                            a.StartPosition = FormStartPosition.CenterScreen;
                            this.Hide();
                            a.ShowDialog();
                        }
                        else
                        {
                            MessageBox.Show("El id Curso no existe en el sistema");
                        }
                    }
                    break;
                case 23:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (DocenteManager.ExisteDocente(int.Parse(txtDNI.Text)))
                            {
                                DesempeñoDocente a = new DesempeñoDocente(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Docente no existe en el sistema, por favor ingrese uno valido!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI Docente!");
                        }
                    }
                    break;
                case 31:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (DocenteManager.ExisteDocente(int.Parse(txtDNI.Text)))
                            {
                                AsignarDocenteMateria a = new AsignarDocenteMateria(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Docente no existe en el sistema, por favor ingrese uno valido!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI Docente!");
                        }
                    }
                    break;
                case 32:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (FamiliarManager.ExisteFamiliarSimple(int.Parse(txtDNI.Text)))
                            {
                                ListarFamiliar a = new ListarFamiliar(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Familiar no existe en el sistema, por favor ingrese uno nuevo!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI familair!");
                        }

                    }
                    break;
                case 34:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (DocenteManager.ExisteDocente(int.Parse(txtDNI.Text)))
                            {
                                MostrarDesempeñoDocente a = new MostrarDesempeñoDocente(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Docente no existe en el sistema, por favor ingrese uno valido!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI Docente!");
                        }
                    }
                    break;
                case 35:
                    {
                        if (CursoManager.ExisteCurso(int.Parse(txtDNI.Text), DateTime.Now.Year))
                        {
                            CalendarioCurso a = new CalendarioCurso(int.Parse(txtDNI.Text));
                            a.StartPosition = FormStartPosition.CenterScreen;
                            this.Hide();
                            a.ShowDialog();
                        }
                        else
                        {
                            MessageBox.Show("El id Curso no existe en el sistema");
                        }
                    }
                    break;
                case 36:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                AlumnoBoletin a = new AlumnoBoletin(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema, por favor ingrese uno valido!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 37:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                ReporteAsistenciaAlumno a = new ReporteAsistenciaAlumno(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema, por favor ingrese uno valido!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 38:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (DocenteManager.ExisteDocente(int.Parse(txtDNI.Text)))
                            {
                                ReporteAsistenciaDocente a = new ReporteAsistenciaDocente(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Docente no existe en el sistema, por favor ingrese uno valido!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI Docente!");
                        }
                    }
                    break;
                case 39:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (AlumnoManager.ExisteAlumno(int.Parse(txtDNI.Text)))
                            {
                                if (AlumnoXCursoManager.yaAsignadoCurso(int.Parse(txtDNI.Text)))
                                {
                                    ModificarAsignarAlumnoCurso a = new ModificarAsignarAlumnoCurso(int.Parse(txtDNI.Text));
                                    a.StartPosition = FormStartPosition.CenterScreen;
                                    this.Hide();
                                    a.ShowDialog();

                                }
                                else
                                {
                                    MessageBox.Show("Error: El alumno no pertenece a ningun curso!");
                                    this.Close();
                                }
                            }
                            else
                            {
                                MessageBox.Show("El DNI Alumno no existe en el sistema, por favor ingrese uno nuevo!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI alumno!");
                        }
                    }
                    break;
                case 40:
                    {
                        if (txtDNI != null && !txtDNI.Text.Equals(""))
                        {
                            if (DocenteManager.ExisteDocente(int.Parse(txtDNI.Text)))
                            {
                                ModificarAsignarDocenteMateria a = new ModificarAsignarDocenteMateria(int.Parse(txtDNI.Text));
                                a.StartPosition = FormStartPosition.CenterScreen;
                                this.Hide();
                                a.ShowDialog();
                            }
                            else
                            {
                                MessageBox.Show("El DNI Docente no existe en el sistema, por favor ingrese uno valido!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Por favor ingrese un DNI Docente!");
                        }
                    }
                    break;
            }
        }

        private void txtDNI_KeyPress(object sender, KeyPressEventArgs e)
        {
            Utils.SoloNumeros(sender, e);

        }

        private void txtDNI_TextChanged(object sender, EventArgs e)
        {
            Utils.SoloNumeros(sender, e);
        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            switch(_searchTipo)
                {
                case SearchTipo.Alumno:
                    {
                        SearchAlumno a = new SearchAlumno( _Tipo,  _Texto, _searchTipo);
                        a.StartPosition = FormStartPosition.CenterScreen;
                        this.Hide();
                        a.ShowDialog();
                        this.Close();
                    }
                    break;
                case SearchTipo.Docente:
                    {
                        SearchDocente a = new SearchDocente(_Tipo, _Texto, _searchTipo);
                        a.StartPosition = FormStartPosition.CenterScreen;
                        this.Hide();
                        a.ShowDialog();
                        this.Close();
                    }
                    break;
                case SearchTipo.Familiar:
                    {
                        SearchFamiliar a = new SearchFamiliar(_Tipo, _Texto, _searchTipo);
                        a.StartPosition = FormStartPosition.CenterScreen;
                        this.Hide();
                        a.ShowDialog();
                        this.Close();
                    }
                    break;
                case SearchTipo.Curso:
                    {
                        SearchCurso a = new SearchCurso(_Tipo, _Texto, _searchTipo);
                        a.StartPosition = FormStartPosition.CenterScreen;
                        this.Hide();
                        a.ShowDialog();
                        this.Close();
                    }
                    break;
                }
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
